home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / finger_dot.nasl < prev    next >
Text File  |  2005-01-14  |  3KB  |  100 lines

  1. #
  2. # This script was written by Renaud Deraison <deraison@cvs.nessus.org>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6. #T
  7.  
  8. if(description)
  9. {
  10.  script_id(10072);
  11.  script_version ("$Revision: 1.14 $");
  12.  script_cve_id("CAN-1999-0198");
  13.  name["english"] = "Finger dot at host feature";
  14.  script_name(english:name["english"]);
  15.  
  16.  desc["english"] = "
  17.  
  18. There is a bug in the remote finger service which, when triggered, allows
  19. a user to force the remote finger daemon to  display the list of the accounts 
  20. that have never been used, by issuing the request :
  21.  
  22.         finger .@target
  23.         
  24. This list will help an attacker to guess the operating system type. It will 
  25. also tell him which accounts have never been used, which will often make him 
  26. focus his attacks on these accounts.
  27.  
  28. Solution : disable the finger service in /etc/inetd.conf and restart the inetd
  29. process, or upgrade your finger service.
  30.  
  31. Risk factor : Medium";
  32.  
  33.  
  34.  script_description(english:desc["english"]);
  35.  
  36.  summary["english"] = "Finger .@host feature";
  37.  summary["francais"] = "Finger .@host feature";
  38.  script_summary(english:summary["english"]);
  39.  
  40.  script_category(ACT_GATHER_INFO);
  41.  
  42.  
  43.  script_copyright(english:"This script is Copyright (C) 1999 Renaud Deraison");
  44.  family["english"] = "Finger abuses";
  45.  script_family(english:family["english"]);
  46.  script_dependencie("find_service.nes");
  47.  script_require_ports("Services/finger", 79);
  48.  exit(0);
  49. }
  50.  
  51. #
  52. # The script code starts here
  53. #
  54.  
  55. port = get_kb_item("Services/finger");
  56. if(!port)port = 79;
  57. if(get_port_state(port))
  58. {
  59.  soc = open_sock_tcp(port);
  60.  if(soc)
  61.  {
  62.   # Cisco
  63.   data = recv(socket:soc, length:2048, timeout:5);
  64.   if(data)exit(0);
  65.   
  66.   buf = string(".\r\n");
  67.   send(socket:soc, data:buf);
  68.   data = recv(socket:soc, length:65535);
  69.   close(soc);
  70.   if(strlen(data)<100)exit(0);
  71.   data_low = tolower(data);
  72.   
  73.   if(data_low && (!("such user" >< data_low)) && 
  74.      (!("doesn't exist" >< data_low)) && (!("???" >< data_low))
  75.      && (!("welcome to" >< data_low))){
  76.      report = "
  77. There is a bug in the remote finger service which, when triggered, allows
  78. a user to force the remote finger daemon to  display the list of the accounts 
  79. that have never been used, by issuing the request :
  80.  
  81.         finger .@target
  82.         
  83. This list will help an attacker to guess the operating system type. It will 
  84. also tell him which accounts have never been used, which will often make him 
  85. focus his attacks on these accounts.
  86.  
  87. Here is the list of accounts we could obtain : 
  88. " + data + "
  89.  
  90. Solution : disable the finger service in /etc/inetd.conf and restart the inetd
  91. process, or upgrade your finger service.
  92.  
  93. Risk factor : Medium";
  94.              security_warning(port:port, data:report);
  95.         set_kb_item(name:"finger/.@host", value:TRUE);
  96.         }
  97.  
  98.  }
  99. }
  100.